With the ever-increasing pervasiveness of system attacks and attempted intrusions, organizations, as well as home computer users, implement software and/or hardware firewalls that block unauthorized access making file and data sharing a more onerous prospect. Traditionally, transferring data and files between computers is accomplished by using email (electronic mail) or placing the files on a server located outside of a local firewall and made accessible to the users. The server can then be accessed by others without exposing internal sources of data. (This also includes peer-to-peer topologies.)
However, there are drawbacks to both cases. Email systems have severe restrictions on transferring files (e.g., size, type of files, and issues with security and privacy). The server solution is not available to a majority of users in a secure way, since subscribers of, for example, a DSL (Digital Subscriber Line) service would be placing the server machine outside of the local gateway/firewall, and to some extent, exposing the shared files. This solution is not feasible in many scenarios, however, due to storage size restrictions, security concerns, costs, etc. Even when considered “secure”, the provider cannot totally guarantee data security, since new security holes are discovered periodically in products. For at least this reason, a majority of users are skeptical of placing confidential information and critical files on publicly-accessible servers or networks.
Moreover, in order to share data between computers that are separated by firewalls (and on different networks) the user typically must go through a laborious exercise that requires much more than a basic understanding of interacting with a computer. A technical knowledge is required that is beyond the knowledge of the average user to configure the user's computer to perform data sharing behind firewalls. Even if configured correctly, newly discovered security holes can enable unauthorized access by hackers to secure information. The user must understand the technologies involved, as well as applications suitable for specific data sharing scenarios. Thus, placing a computer on an open network (e.g., the Internet) requires continuous maintenance to ensure that security holes are plugged.
What is needed is an improved file sharing architecture.